<html>
<head><meta charset="utf-8"><title>toolstate breakage #70655 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html">toolstate breakage #70655</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="189226991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189226991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189226991">(Feb 27 2020 at 16:03)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="492">@T-compiler</span> <span class="user-mention" data-user-id="120791">@RalfJ</span> (pings for clippy ppl will be done on discord)<br>
The status quo with our tool breakages works, but is not ideal imo. There are multiple forces at play here</p>
<ol>
<li>easy contributing to tools requires tools to be in their own repo (so we can't just make it all a monorepo)</li>
<li>easy tool updates require tools to be in tree (so monorepo), because otherwise you need to fix the tool in its repo and then come back and update the submodule</li>
</ol>
<p>Half a year ago I did a small investigation into different ways to handle projects with git. I found</p>
<ol>
<li>git submodule (what we use in Rust, but I've noticed elsewhere that ppl are quite confused/annoyed by submodules)</li>
<li>git subtree (oh god experimenting with those was such a nonpleasure)</li>
<li>git subrepo</li>
</ol>
<p>Since I'm very much against git subtree, let me explain git subrepo.<br>
TLDR: Monorepo with tooling to sync subfolders with other repos<br>
Long version: <code>git subrepo clone foo bar</code> creates a folder <code>bar</code> with the contents of the repo <code>foo</code>. Now if contributors change rustc and a submodule, they can just modify the files directly (and we can gate all PRs on tools). The contributor really sees a monorepo and does not even need to know that the subrepo is a subrepo, they need not no learn any new commands beyond the standard git commands they need for any contribution.<br>
 The folder also gets a <code>.subrepo</code> file that has some metadata explaining how to sync said folder with the source repo. Now, this synchronization (I'll get to its details later) requires users to install git-subrepo and take care around rebasing because that messes up the <code>.subrepo</code> info, <strong>but</strong> this only applies to users that synchronize the subrepo. If you are just contributing to a tool via its own repo, you don't need to know about this. If you are just contributing to rustc and your changes requrie tool changes, you don't need to know about this.</p>
<p>Of course this is not free. We will end up with a snapshot of the tool in our tree (not the whole history thank the <span aria-label="spaghetti" class="emoji emoji-1f35d" role="img" title="spaghetti">:spaghetti:</span> :monster:). But other than that, it's totally cheap to do and we can do this change per tool without any hurry.</p>



<a name="189227200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227200">(Feb 27 2020 at 16:05)</a>:</h4>
<p>-1 on having to install additional tooling, but from your description it is not entirely clear who are the users that synchronize the subrepo</p>



<a name="189227262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227262">(Feb 27 2020 at 16:06)</a>:</h4>
<p>clippy devs would do the syncing just like they do now</p>



<a name="189227268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227268">(Feb 27 2020 at 16:06)</a>:</h4>
<p>noone needs to sync who doesn't want to sync</p>



<a name="189227283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227283">(Feb 27 2020 at 16:06)</a>:</h4>
<p>the extra tooling is only required for ppl with an interest in syncing</p>



<a name="189227332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227332">(Feb 27 2020 at 16:07)</a>:</h4>
<p>basically in the clippy case we sync when we want to use a newer nightly on the clippy repo or when we want to move new features from the clippy repo to the rustc subrepo</p>



<a name="189227342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227342">(Feb 27 2020 at 16:07)</a>:</h4>
<p>I'm trying to understand how someone making rustc changes that have effects on tools wouldn't need to know about<code>.subrepo</code></p>



<a name="189227386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227386">(Feb 27 2020 at 16:07)</a>:</h4>
<p>there's a literal <code>cp</code> copy of the working copy of the subrepo in the rustc working copy</p>



<a name="189227433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227433">(Feb 27 2020 at 16:08)</a>:</h4>
<p>Also this sounds like divergence between the external repo and the rustc repo is possible? How is that handled?</p>



<a name="189227446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227446">(Feb 27 2020 at 16:08)</a>:</h4>
<p>the changes to the tool just turn into commits on the rust-lang/rust repo ?</p>



<a name="189227449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227449">(Feb 27 2020 at 16:08)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> can you elaborate on the rebasing aspect; when I'm updating my PR that isn't making tool changes, can I continue just using <code>git pull --rebase upstream master</code>?</p>



<a name="189227454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227454">(Feb 27 2020 at 16:08)</a>:</h4>
<p>you can make commits that cross the rustc repo and the external repo</p>



<a name="189227466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227466">(Feb 27 2020 at 16:08)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116083">pnkfelix</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189227446" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189227446">said</a>:</p>
<blockquote>
<p>the changes to the tool just turn into commits on the rust-lang/rust repo ?</p>
</blockquote>
<p>yes</p>



<a name="189227471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227471">(Feb 27 2020 at 16:08)</a>:</h4>
<p>and the synchronizers have to deal with cherry-picking them?</p>



<a name="189227476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227476">(Feb 27 2020 at 16:08)</a>:</h4>
<p>ah no</p>



<a name="189227479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227479">(Feb 27 2020 at 16:08)</a>:</h4>
<p>you only get one commit per sync</p>



<a name="189227486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227486">(Feb 27 2020 at 16:08)</a>:</h4>
<p>oh</p>



<a name="189227488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227488">(Feb 27 2020 at 16:08)</a>:</h4>
<p>just like with submodule</p>



<a name="189227510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227510">(Feb 27 2020 at 16:08)</a>:</h4>
<p>but the clippy repo gets all commits that touched its subrepo in the rustc repo</p>



<a name="189227531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227531">(Feb 27 2020 at 16:09)</a>:</h4>
<p><span class="user-mention silent" data-user-id="126931">centril</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189227449" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189227449">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="124288">oli</span> can you elaborate on the rebasing aspect; when I'm updating my PR that isn't making tool changes, can I continue just using <code>git pull --rebase upstream master</code>?</p>
</blockquote>
<p>yes</p>



<a name="189227549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227549">(Feb 27 2020 at 16:09)</a>:</h4>
<p>so in the rust-lang/rust --&gt; tool repo direction, its fine grained?</p>



<a name="189227550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227550">(Feb 27 2020 at 16:09)</a>:</h4>
<p>only if you used a <code>git subrepo</code> command do you need to take care</p>



<a name="189227561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227561">(Feb 27 2020 at 16:09)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116083">pnkfelix</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189227549" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189227549">said</a>:</p>
<blockquote>
<p>so in the rust-lang/rust --&gt; tool repo direction, its fine grained?</p>
</blockquote>
<p>yes</p>



<a name="189227563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227563">(Feb 27 2020 at 16:09)</a>:</h4>
<p>but int he tool repo --&gt; rust-lang/rust direction, its coarse grained?</p>



<a name="189227576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227576">(Feb 27 2020 at 16:09)</a>:</h4>
<p>yes, it's one commit per update in the tool repo -&gt; rust repo direction</p>



<a name="189227640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227640">(Feb 27 2020 at 16:10)</a>:</h4>
<p>that probably makes sense.</p>



<a name="189227643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227643">(Feb 27 2020 at 16:10)</a>:</h4>
<p>So basically the benefit here is that this is just not submodule?</p>



<a name="189227648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227648">(Feb 27 2020 at 16:10)</a>:</h4>
<p>yes</p>



<a name="189227669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227669">(Feb 27 2020 at 16:10)</a>:</h4>
<p>it's a monorepo for all intents and purposes</p>



<a name="189227686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227686">(Feb 27 2020 at 16:10)</a>:</h4>
<p>except with synchronization tooling so we can keep a separate repo for easy contribs by users who contrib to the tools</p>



<a name="189227733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227733">(Feb 27 2020 at 16:11)</a>:</h4>
<p>If I am hacking on rustc and also need to make drive-by changes to Clippy and then there's a merge conflict in the clippy changes, what happens then?</p>



<a name="189227767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227767">(Feb 27 2020 at 16:11)</a>:</h4>
<p>the synchronizer needs to resolve them</p>



<a name="189227907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227907">(Feb 27 2020 at 16:12)</a>:</h4>
<p>your changes are no different from a normal PR to clippy</p>



<a name="189227921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227921">(Feb 27 2020 at 16:12)</a>:</h4>
<p>What (workflow?) improvements do we expect here? From my reading you basically just get submodules under a different name with slightly different and way more obscure semantics to be honest.</p>



<a name="189227939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227939">(Feb 27 2020 at 16:12)</a>:</h4>
<p>we get to block CI on tool breakage</p>



<a name="189227953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227953">(Feb 27 2020 at 16:12)</a>:</h4>
<p>so if you do some changes that break tools, you can fix them in your PR</p>



<a name="189227957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227957">(Feb 27 2020 at 16:12)</a>:</h4>
<p>without a sync dance</p>



<a name="189227965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227965">(Feb 27 2020 at 16:12)</a>:</h4>
<p>you just fix them inside the rust repo</p>



<a name="189227976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189227976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189227976">(Feb 27 2020 at 16:13)</a>:</h4>
<p><span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="189228002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228002">(Feb 27 2020 at 16:13)</a>:</h4>
<p>Again, does that mean the tool repo and the rustc repo can diverge for that tool?</p>



<a name="189228003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228003">(Feb 27 2020 at 16:13)</a>:</h4>
<p>imo this almost sounds too good to be true :P</p>



<a name="189228011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228011">(Feb 27 2020 at 16:13)</a>:</h4>
<p><span class="user-mention silent" data-user-id="123586">nagisa</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189228002" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189228002">said</a>:</p>
<blockquote>
<p>Again, does that mean the tool repo and the rustc repo can diverge for that tool?</p>
</blockquote>
<p>yes</p>



<a name="189228095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228095">(Feb 27 2020 at 16:14)</a>:</h4>
<p>And how are we gonna handle non-trivial… lets call them… sync conflicts?</p>



<a name="189228148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228148">(Feb 27 2020 at 16:15)</a>:</h4>
<p>just like we handle them right now, they can already happen after contribs to the clippy repo become conflicting with future changes required for rustups</p>



<a name="189228211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228211">(Feb 27 2020 at 16:15)</a>:</h4>
<p>Could there be automatic syncs through bors or something?</p>



<a name="189228216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228216">(Feb 27 2020 at 16:15)</a>:</h4>
<p>With submodules you won’t get any conflicts inside a tool though.</p>



<a name="189228273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228273">(Feb 27 2020 at 16:16)</a>:</h4>
<p>only between separate PRs against that tool.</p>



<a name="189228292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228292">(Feb 27 2020 at 16:16)</a>:</h4>
<p>now you get yet another family of conflicts.</p>



<a name="189228431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228431">(Feb 27 2020 at 16:18)</a>:</h4>
<p>And it requires a 3rd party, that’s potentially not familiar with changes in question, to resolve them.</p>



<a name="189228432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228432">(Feb 27 2020 at 16:18)</a>:</h4>
<p><span class="user-mention silent" data-user-id="123586">nagisa</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189228216" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189228216">said</a>:</p>
<blockquote>
<p>With submodules you won’t get any conflicts inside a tool though.</p>
</blockquote>
<p>you just get periods of time where the nightly rust doesn't have a working tool</p>



<a name="189228464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228464">(Feb 27 2020 at 16:18)</a>:</h4>
<p>(but honestly, maybe that should be considered "okay")</p>



<a name="189228549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228549">(Feb 27 2020 at 16:19)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116083">pnkfelix</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189228432" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/189228432">said</a>:</p>
<blockquote>
<p>you just get periods of time where the nightly rust doesn't have a working tool</p>
</blockquote>
<p>I think that’s the choice we made entirely for convenience reasons though? There’s no inherent technical limitation that would prevent us from CIing tools in rustc and requiring rustc PR authors to also fix tools at the same time.</p>



<a name="189228627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228627">(Feb 27 2020 at 16:20)</a>:</h4>
<p>this proposal is effectively that and the only thing it wins is not having to go to another repo to fix it (so that the changes to tools and changes to rustc can land in synchronized manner)</p>



<a name="189228678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228678">(Feb 27 2020 at 16:21)</a>:</h4>
<p>yes, but these "only wins" are really big blockers and I believe the explicit syncs by ppl will be less of a problem because they require you to just handle conflicts with other PRs to the same tool, not between different repos</p>



<a name="189228786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228786">(Feb 27 2020 at 16:22)</a>:</h4>
<p>I didn’t mean to imply that the wins are irrelevant.</p>



<a name="189228849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189228849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189228849">(Feb 27 2020 at 16:23)</a>:</h4>
<p>Either way, my opinion is that this trades one kind of clunky with another kind of clunky. I guess the benefits of the other kind of clunky are sizable. But IME ideally we get both the benefits and no clunky.</p>



<a name="189229028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229028">(Feb 27 2020 at 16:25)</a>:</h4>
<p>I think it's also true that this in theory makes it super easy to move to monorepo if we ever want to, right?</p>



<a name="189229037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229037">(Feb 27 2020 at 16:25)</a>:</h4>
<p>i.e. you just stop syncing?</p>



<a name="189229136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229136">(Feb 27 2020 at 16:26)</a>:</h4>
<p>One alternative option I can think is moving the source of truth to an actual rustc monorepo and then clippy devs just sync the portion of the tree they are interested in into another repo once in a while. Mainlining the changes from their own repo would then be a regular PR against rustc.</p>



<a name="189229180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229180">(Feb 27 2020 at 16:26)</a>:</h4>
<p>That's the subrepo thing basically, right?</p>



<a name="189229247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229247">(Feb 27 2020 at 16:27)</a>:</h4>
<p>Or at least I'm not really seeing a difference</p>



<a name="189229342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229342">(Feb 27 2020 at 16:28)</a>:</h4>
<p>In the other direction, if I understand the subrepo correctly. But then any concerns arising from clippy devs’ workflows are clippy devs’ responsibility to deal with at the time they mainline changes from their repo into rustc.</p>



<a name="189229357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229357">(Feb 27 2020 at 16:28)</a>:</h4>
<p>and it does not require any additional tooling  on anybody’s end.</p>



<a name="189229643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229643">(Feb 27 2020 at 16:31)</a>:</h4>
<p>I think that where the canonical repository is doesn't matter, right?</p>



<a name="189229681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229681">(Feb 27 2020 at 16:31)</a>:</h4>
<p>Like, AFAICT, for all intents and purposes, rustc is the canonical repository</p>



<a name="189229728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229728">(Feb 27 2020 at 16:32)</a>:</h4>
<p>It's just that much of the work happens elsewhere and is periodically rolled in</p>



<a name="189229832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229832">(Feb 27 2020 at 16:33)</a>:</h4>
<p>Definitely agree with <span class="user-mention" data-user-id="124288">@oli</span> that the wins here are pretty big</p>



<a name="189229855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229855">(Feb 27 2020 at 16:33)</a>:</h4>
<p>having to jump between repos when hacking on rustc would imo be a non-starter</p>



<a name="189229981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189229981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189229981">(Feb 27 2020 at 16:34)</a>:</h4>
<p>How hard is it to improve our rustc workflows and tooling to make actual genuine monorepo tenable?</p>



<a name="189230059"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230059" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230059">(Feb 27 2020 at 16:35)</a>:</h4>
<p>What are the current concerns?</p>



<a name="189230140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230140">(Feb 27 2020 at 16:36)</a>:</h4>
<p>my understanding is that the concerns are re. compile times / landing times</p>



<a name="189230163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230163">(Feb 27 2020 at 16:36)</a>:</h4>
<p>but Clippy doesn't have that many PRs per week</p>



<a name="189230215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230215">(Feb 27 2020 at 16:37)</a>:</h4>
<p>I personally think it's tenable already; on the upside, people like myself would now be interested in improving clippy</p>



<a name="189230245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230245">(Feb 27 2020 at 16:37)</a>:</h4>
<p>but moving to GHA should help to reduce landing times substantially</p>



<a name="189230337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230337">(Feb 27 2020 at 16:38)</a>:</h4>
<p>compile times can remain mostly unaffected, you’d just do the usual <code>cargo test</code> from the <code>clippy</code> directory, no?</p>



<a name="189230377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230377">(Feb 27 2020 at 16:38)</a>:</h4>
<p>I think so</p>



<a name="189230460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230460">(Feb 27 2020 at 16:39)</a>:</h4>
<p>Running partial tests would help most with the landing times, but I doubt we want to go there.</p>



<a name="189230492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230492">(Feb 27 2020 at 16:39)</a>:</h4>
<p>yea don't ever break the no-rocket science rule</p>



<a name="189230602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230602">(Feb 27 2020 at 16:40)</a>:</h4>
<p>though ostensibly if you only change things in the clippy folder then you can avoid running every single builder</p>



<a name="189230618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230618">(Feb 27 2020 at 16:41)</a>:</h4>
<p>but I suspect the infra team would be unhappy with that</p>



<a name="189230978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189230978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189230978">(Feb 27 2020 at 16:44)</a>:</h4>
<p>We can't really do that today, too prone to breakage (and you want artifacts for every bors commit which means a full build)</p>



<a name="189231006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189231006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189231006">(Feb 27 2020 at 16:44)</a>:</h4>
<p>I feel like we should do subrepo now and then maybe more than that later if we want to</p>



<a name="189231026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189231026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189231026">(Feb 27 2020 at 16:45)</a>:</h4>
<p>I think subrepo gets us 90-95% of the way there though</p>



<a name="189231113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189231113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189231113">(Feb 27 2020 at 16:46)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> would you be on board to try and get that going? Maybe we can get a PR up making the changes necessary and FCP merge it or so?</p>



<a name="189231497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189231497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189231497">(Feb 27 2020 at 16:49)</a>:</h4>
<p>As a rollout plan, we could first try subrepo for maybe 2 months and then if all goes well we can start gating on e.g. Clippy</p>



<a name="189252019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189252019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> flip1995 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189252019">(Feb 27 2020 at 20:13)</a>:</h4>
<p>So if I want to update clippy, it would look like this:<br>
Let's say Clippy was last synced at commit X. The Clippy repo got 20 commits since then -&gt; X+20, while the rust-Clippy repo got 3 fixing commits -&gt; X+3</p>
<p>I then run <code>git subrepo sync</code> (or whatever) and resolve all sync conflicts. Then the Clippy repo is at (X+20)+3 and the rust-Clippy repo at (X+3)+1, since all commits from clippy got squashed in a single sync commit.</p>
<p>I then open a PR in each repo and update the nightly version in the Clippy repo.</p>
<p>A few questions:<br>
Did I get it right up until here?<br>
What if there is a sync fallout? Do I add commits to both repos/PRs until they are fixed?</p>



<a name="189294191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189294191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189294191">(Feb 28 2020 at 09:16)</a>:</h4>
<p>Hm, that's very interesting indeed. I guess whether or not this is better than toolstate breakage depends on how painful the syncing is.</p>



<a name="189294248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189294248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189294248">(Feb 28 2020 at 09:17)</a>:</h4>
<p>to what extend could we have that automated? like, whenever a commit lands in rustc that changes the subrepo, have a bot open a syncing PR against clippy/miri? the more timely this is done, the lower the chance of conflicts.</p>



<a name="189314920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189314920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lzutao <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189314920">(Feb 28 2020 at 14:36)</a>:</h4>
<p>What about testing? As far as I know, clippy runs it integration tests on other crates to look for crashing and ICE.</p>



<a name="189328417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189328417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189328417">(Feb 28 2020 at 17:00)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> I think this is good, but it's only going to be an improvement if we also start gating on it in the compiler imo. Which shouldn't be a big deal for compiler folks, it's just another in-tree consumer like rustdoc and 99% of breakages are ones where the compiler author is fixing such things all over the codebase _anyway_. (and ideally we should suggest this approach to rustdoc as well)</p>



<a name="189332496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189332496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189332496">(Feb 28 2020 at 17:43)</a>:</h4>
<p>I really don't like the idea of requiring people to have another git tool installed.</p>



<a name="189332606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189332606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189332606">(Feb 28 2020 at 17:44)</a>:</h4>
<p>Git workflows involving third-party tools always look simple when you look at the simple commands, but completely break more advanced git usage.</p>



<a name="189332675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189332675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189332675">(Feb 28 2020 at 17:45)</a>:</h4>
<p>I would love to figure out how we can make a monorepo viable in performance for tool developers.</p>



<a name="189332715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189332715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189332715">(Feb 28 2020 at 17:45)</a>:</h4>
<p>That seems doable.</p>



<a name="189332811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189332811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189332811">(Feb 28 2020 at 17:46)</a>:</h4>
<p>Failing that, submodule doesn't seem any <em>worse</em> (and we already use it), and it is at least built into git.</p>



<a name="189333906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189333906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189333906">(Feb 28 2020 at 17:57)</a>:</h4>
<p><span class="user-mention" data-user-id="239881">@Josh Triplett</span> Well, to be clear, my understanding is that we don't require anyone except people doing the upstreaming work to install said tool</p>



<a name="189333972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189333972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189333972">(Feb 28 2020 at 17:58)</a>:</h4>
<p>(and even then that tool is only "nice to have" -- you can always just <code>cp</code> or <code>rsync</code> the files or so between the two directories, AFAICT)</p>



<a name="189334000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189334000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189334000">(Feb 28 2020 at 17:58)</a>:</h4>
<p>submodule is much worse -- it doesn't support bidirectional editing at all</p>



<a name="189338818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189338818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189338818">(Feb 28 2020 at 18:46)</a>:</h4>
<p>Wouldn't anyone trying to do work in rustc and commit changes that include changes to tools needed it?</p>



<a name="189338849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189338849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189338849">(Feb 28 2020 at 18:47)</a>:</h4>
<p>no, not as I understand it</p>



<a name="189338858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189338858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189338858">(Feb 28 2020 at 18:47)</a>:</h4>
<p>just if you're syncing between the two repos</p>



<a name="189338872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189338872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189338872">(Feb 28 2020 at 18:47)</a>:</h4>
<p>which while not infrequent, is done by very few peopel</p>



<a name="189338902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189338902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189338902">(Feb 28 2020 at 18:48)</a>:</h4>
<p>to everyone else it's just a bunch of files in a subdirectory, nothing special</p>



<a name="189339117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189339117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189339117">(Feb 28 2020 at 18:50)</a>:</h4>
<p>Ah, that wasn't clear from the discussion above.</p>



<a name="189339145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189339145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189339145">(Feb 28 2020 at 18:50)</a>:</h4>
<p>If this doesn't change the workflow for anyone else working in rustc, then I withdraw my objection.</p>



<a name="189631202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/189631202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#189631202">(Mar 03 2020 at 20:31)</a>:</h4>
<p>(catching up) this does seem pretty interesting. I think it's quite relevant also to efforts to "library-ify" the compiler.</p>



<a name="192195980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192195980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192195980">(Mar 29 2020 at 21:53)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> could you file an issue about this? perhaps we should start trying this out for Clippy</p>



<a name="192196004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192196004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192196004">(Mar 29 2020 at 21:53)</a>:</h4>
<p>and maybe move rustfmt over so it doesn't need the rustc-ap stuff anymore</p>



<a name="192223881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192223881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192223881">(Mar 30 2020 at 08:15)</a>:</h4>
<p><span class="user-mention silent" data-user-id="132040">Manish Goregaokar</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192196004" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192196004">said</a>:</p>
<blockquote>
<p>and maybe move rustfmt over so it doesn't need the rustc-ap stuff anymore</p>
</blockquote>
<p>That'd be great; I could then help out with some cleanups to the parser logic</p>



<a name="192258551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192258551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192258551">(Mar 30 2020 at 13:55)</a>:</h4>
<p>do I understand correctly that with the subrepo, we will have to fix actual merge conflicts in addition to 'only' compile errors if clippy breaks? (imo that sounds quite a bit more complicated...)</p>



<a name="192258692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192258692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192258692">(Mar 30 2020 at 13:56)</a>:</h4>
<p>or will that completely eliminate clippy breaking?</p>



<a name="192258832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192258832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192258832">(Mar 30 2020 at 13:57)</a>:</h4>
<p>(also our current CI setup is more strict than just <code>./x.py test src/tools/clippy</code>, that might cause problems here and there)</p>



<a name="192260468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192260468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192260468">(Mar 30 2020 at 14:08)</a>:</h4>
<p>I think yes, you'd need to rebase atop clippy changes in rust-lang/rust, i.e. merge conflicts, but we would presumably also make clippy never broken. It would basically mean that clippy is equivalent of src/tools/rustdoc, I think.</p>



<a name="192260503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192260503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192260503">(Mar 30 2020 at 14:09)</a>:</h4>
<p>(Except has a separate repository for issues and PRs)</p>



<a name="192265083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265083">(Mar 30 2020 at 14:42)</a>:</h4>
<p>I want this, <em>so much</em></p>



<a name="192265114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265114">(Mar 30 2020 at 14:42)</a>:</h4>
<p>I just want to be able to fix tools when I make a change in rustc and not leave it to other people, or navigate several repos</p>



<a name="192265145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265145">(Mar 30 2020 at 14:43)</a>:</h4>
<p>it's entirely unnecessary to ever have "broken tools" as a possible state</p>



<a name="192265174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265174">(Mar 30 2020 at 14:43)</a>:</h4>
<p>I think we used to do a juggle with submodules to try and never break something but it got really hard</p>



<a name="192265192"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265192" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265192">(Mar 30 2020 at 14:43)</a>:</h4>
<p>(we probably still have to do it for Cargo, right?)</p>



<a name="192265325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265325">(Mar 30 2020 at 14:44)</a>:</h4>
<p><span class="user-mention" data-user-id="217864">@matthiaskrgr</span> we should also move all the strictest testing to be able to run from x.py, so that nothing can break</p>



<a name="192265453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265453">(Mar 30 2020 at 14:45)</a>:</h4>
<p>yeah, for cargo we do, but since cargo is very high level and usually only depends on stabilized features in a "breaking" way it's not too bad</p>



<a name="192265515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192265515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192265515">(Mar 30 2020 at 14:45)</a>:</h4>
<p>i.e. cargo tries to not have tests for unstable features (in rustc)</p>



<a name="192267039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192267039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192267039">(Mar 30 2020 at 14:55)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192265325" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192265325">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="217864">matthiaskrgr</span> we should also move all the strictest testing to be able to run from x.py, so that nothing can break</p>
</blockquote>
<p>uuh..<br>
well, what we do doing ci is stuff like 1) build clippy 2) test clippy 3) run doctests of clippy-driver 4) check(bootstrap) clippy with clippy to make sure there are no warnings (also internal warnings/lints) 5) check formatting with cargo fmt 6) check formatting of .mds 7) run clippy against  ~15 rust projects and check if there are ICSs/panics</p>



<a name="192267093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192267093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192267093">(Mar 30 2020 at 14:55)</a>:</h4>
<p>all this would probably take around an hour or so if run locally <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="192267436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192267436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192267436">(Mar 30 2020 at 14:57)</a>:</h4>
<p><code>./x.py test src/tools/clippy --hurt-me-plenty</code></p>



<a name="192268280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192268280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192268280">(Mar 30 2020 at 15:01)</a>:</h4>
<p>hmm</p>



<a name="192268320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192268320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192268320">(Mar 30 2020 at 15:01)</a>:</h4>
<p>ah but none of those should really block clippy from being present in nightly</p>



<a name="192270383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192270383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192270383">(Mar 30 2020 at 15:15)</a>:</h4>
<p>it will probably happen that someone changes clippy in the rustcrepo and when we try to sync these changes into the upstream repo, we notice the crash and need to wait a couple of days for an upstream (rustc) fix and can't land the sync because of that (or have to temporarily disable the ci check(s)...)</p>



<a name="192270503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192270503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192270503">(Mar 30 2020 at 15:16)</a>:</h4>
<p>meanwhile a crashing clippy gets shipped in nightly and everyone complains :P</p>



<a name="192270555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192270555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192270555">(Mar 30 2020 at 15:16)</a>:</h4>
<p>(although we already had similar situations with the current system, so whatever...)</p>



<a name="192270637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192270637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192270637">(Mar 30 2020 at 15:17)</a>:</h4>
<p>This seems like a testable hypothesis over some time before we always gate on clippy</p>



<a name="192270966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192270966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192270966">(Mar 30 2020 at 15:19)</a>:</h4>
<p>why would clippy <em>crash</em>?</p>



<a name="192270996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192270996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192270996">(Mar 30 2020 at 15:19)</a>:</h4>
<p>or do you mean on some specific project we don't test</p>



<a name="192271157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271157">(Mar 30 2020 at 15:20)</a>:</h4>
<p>you could still run CI using nightly clippy, so we're informed immediatelly</p>



<a name="192271418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271418">(Mar 30 2020 at 15:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192270966" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192270966">said</a>:</p>
<blockquote>
<p>why would clippy <em>crash</em>?</p>
</blockquote>
<p>it is only written by mortal humans .. :P</p>
<p>well sometimes clippy code triggers rustc paths that are not commonly used and that triggers an ICE that is not reproducible by running plain rustc on the source code</p>



<a name="192271460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271460">(Mar 30 2020 at 15:23)</a>:</h4>
<p>yes but I mean, we actually test tools</p>



<a name="192271489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271489">(Mar 30 2020 at 15:23)</a>:</h4>
<p>in Rust CI</p>



<a name="192271528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271528">(Mar 30 2020 at 15:23)</a>:</h4>
<p>and once we're no longer allowing build failures, there's pretty much 0 reason to allow test failures</p>



<a name="192271583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271583">(Mar 30 2020 at 15:24)</a>:</h4>
<p>there have been panics caused by code that we did not have tests for previously, but that was caught by running clippy against cargo sources  (+ all its deps) for example</p>



<a name="192271786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271786">(Mar 30 2020 at 15:25)</a>:</h4>
<p>we'll hopefully be able to do more of that once we switch to GHA</p>



<a name="192271796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271796">(Mar 30 2020 at 15:25)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust-clippy/blob/d8e6e4cfcd83d555bd7717ea24224b777ed75773/.github/workflows/clippy_bors.yml#L233" title="https://github.com/rust-lang/rust-clippy/blob/d8e6e4cfcd83d555bd7717ea24224b777ed75773/.github/workflows/clippy_bors.yml#L233">https://github.com/rust-lang/rust-clippy/blob/d8e6e4cfcd83d555bd7717ea24224b777ed75773/.github/workflows/clippy_bors.yml#L233</a></p>



<a name="192271812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271812">(Mar 30 2020 at 15:25)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="121055">@Pietro Albini</span></p>



<a name="192271948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192271948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192271948">(Mar 30 2020 at 15:26)</a>:</h4>
<p>it's not like pings are speeding up the GHA development <span aria-label="stuck out tongue" class="emoji emoji-1f61d" role="img" title="stuck out tongue">:stuck_out_tongue:</span></p>



<a name="192272051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192272051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192272051">(Mar 30 2020 at 15:26)</a>:</h4>
<p>I meant the part about potentially testing more in CI once it's faster :P</p>



<a name="192414705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192414705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192414705">(Mar 31 2020 at 16:31)</a>:</h4>
<p><span class="user-mention" data-user-id="217864">@matthiaskrgr</span> we would never have to fix compile errors again, provided we gate on clippy building. we could also gate on clippy tests passing. We would just have to do periodic merges, which are way easier since they don't require context</p>



<a name="192414858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192414858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192414858">(Mar 31 2020 at 16:32)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> i think we should start by gating on it building (it's pretty meaningless if we're not doing that since people will just ignore it if CI isn't telling them not to), and then perhaps try gating on tests as well to see what happens</p>



<a name="192414955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192414955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192414955">(Mar 31 2020 at 16:33)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> that could work</p>



<a name="192414970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192414970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192414970">(Mar 31 2020 at 16:33)</a>:</h4>
<p>we could potentially turn off some of the more annoying tests, like the dogfood test, and instead have _that_ get run on clippy's nightly build</p>



<a name="192415026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415026">(Mar 31 2020 at 16:34)</a>:</h4>
<p>alternatively we can run the dogfood test as an integration test without gating on the lint result</p>



<a name="192415092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415092">(Mar 31 2020 at 16:34)</a>:</h4>
<p>ideally, fixing clippy should be very easy for people breaking it, so we should avoid gating on fmt/dogfood</p>



<a name="192415111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415111">(Mar 31 2020 at 16:34)</a>:</h4>
<p>(fmt i can go either way)</p>



<a name="192415242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415242">(Mar 31 2020 at 16:35)</a>:</h4>
<p>I can't emphasize enough how much I want to fix tools when I break them :D</p>



<a name="192415855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415855">(Mar 31 2020 at 16:40)</a>:</h4>
<p>I'll start writing usage docs and do this for clippy, anyone volunteering for reviewing tomorrow morning with closing the tree and priorizing and stuff?</p>



<a name="192415860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415860">(Mar 31 2020 at 16:40)</a>:</h4>
<p>(wrong thread)</p>



<a name="192415931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415931">(Mar 31 2020 at 16:41)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> I have it on good authority that <span class="user-mention" data-user-id="126931">@centril</span> loves closing the tree :P</p>



<a name="192415946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415946">(Mar 31 2020 at 16:41)</a>:</h4>
<p>hehe</p>



<a name="192415987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415987">(Mar 31 2020 at 16:41)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> we can coordinate, in #infra</p>



<a name="192415990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192415990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192415990">(Mar 31 2020 at 16:41)</a>:</h4>
<p>(on Discord)</p>



<a name="192416353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192416353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192416353">(Mar 31 2020 at 16:44)</a>:</h4>
<p>ok</p>



<a name="192416670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192416670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192416670">(Mar 31 2020 at 16:46)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192271460" title="#narrow/stream/131828-t-compiler/topic/toolstate.20breakage/near/192271460">said</a>:</p>
<blockquote>
<p>yes but I mean, we actually test tools</p>
</blockquote>
<p>AFAIK, right now Miri is the only tool that is actually not shipped via rustup when tests fail. for most tools, if they build, we ship them. (the builders that create the package dont have time budget to run the tests, so they don't know better.)<br>
however for some time now we have the infra to gate shipping tools on their tests, just no tool other than miri <a href="https://github.com/rust-lang/rust/blob/2113659479a82ea69633b23ef710b58ab127755e/src/tools/build-manifest/src/main.rs#L409" title="https://github.com/rust-lang/rust/blob/2113659479a82ea69633b23ef710b58ab127755e/src/tools/build-manifest/src/main.rs#L409">uses that</a>.</p>



<a name="192416734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192416734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192416734">(Mar 31 2020 at 16:47)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> we talked about doing this for Miri but there was some problem with the "push" action also having a commit on the rustc side?</p>



<a name="192416746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192416746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192416746">(Mar 31 2020 at 16:47)</a>:</h4>
<p>yes</p>



<a name="192416826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192416826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192416826">(Mar 31 2020 at 16:48)</a>:</h4>
<p>so is that a solved problem or what do we do?</p>



<a name="192416839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192416839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192416839">(Mar 31 2020 at 16:48)</a>:</h4>
<p>(FWIW, if trying this with clippy first is considered too risky I am okay with using Miri as the guinea pig here.)</p>



<a name="192416933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192416933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192416933">(Mar 31 2020 at 16:48)</a>:</h4>
<p>It may be solvable by storing the synchronization file in the miri repo... I'll check if <code>subrepo</code> supports this</p>



<a name="192418082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192418082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192418082">(Mar 31 2020 at 16:57)</a>:</h4>
<p>doesn't look like it. A <code>push</code> will always need to store the parent of the push-commit's ID together with the remote repo's new commit id in a <code>.subrepo</code> file in order for the next <code>pull</code> or <code>push</code> to be able to figure out what changed and only push that</p>



<a name="192418194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192418194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192418194">(Mar 31 2020 at 16:58)</a>:</h4>
<p>it can't be in miri, as theoretically multiple repos could be using <code>miri</code> as a subrepo</p>



<a name="192418810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192418810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192418810">(Mar 31 2020 at 17:02)</a>:</h4>
<p>So when you push, you get a commit to rustc that you need to merge without ever rebasing it</p>



<a name="192418897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192418897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192418897">(Mar 31 2020 at 17:03)</a>:</h4>
<p>Hypothetically we could make bors do this after every merge that touched a subrepo</p>



<a name="192419019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192419019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192419019">(Mar 31 2020 at 17:04)</a>:</h4>
<p>or... PRs that only modify the <code>.subrepo</code> file are merged without running any CI</p>



<a name="192419906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192419906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192419906">(Mar 31 2020 at 17:11)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> down to help. we should have a github issue filed though</p>



<a name="192419963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192419963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192419963">(Mar 31 2020 at 17:11)</a>:</h4>
<p>i think aftger clippy we should ask rustfmt to try movng over, and maybe rustdoc</p>



<a name="192424482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192424482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192424482">(Mar 31 2020 at 17:45)</a>:</h4>
<p>rustdoc?</p>



<a name="192424502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192424502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192424502">(Mar 31 2020 at 17:45)</a>:</h4>
<p>rustdoc is still in-tree :P</p>



<a name="192424591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192424591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192424591">(Mar 31 2020 at 17:45)</a>:</h4>
<p>Right, it's worth talking to imperio and seeing if they'd prefer to move it out of tree via subrepo</p>



<a name="192424814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192424814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192424814">(Mar 31 2020 at 17:47)</a>:</h4>
<p>miri and clippy are already submodules so this is a strict win and also an easy move to make. rustfmt has that -ap- stuff so it's going to be a bit more involved getting rid of it, but it would benefit too. rustdoc is in tree so it's a bunch more work to move out, but it might be beneficial</p>



<a name="192424960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192424960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192424960">(Mar 31 2020 at 17:48)</a>:</h4>
<p>ah I see, sure</p>



<a name="192424974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192424974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192424974">(Mar 31 2020 at 17:48)</a>:</h4>
<p><code>rls</code> is the other one</p>



<a name="192425055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192425055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192425055">(Mar 31 2020 at 17:48)</a>:</h4>
<p>if I had the ability to touch <code>rls</code> in tree, maybe I'd start cleaning it up</p>



<a name="192425060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192425060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192425060">(Mar 31 2020 at 17:48)</a>:</h4>
<p>mmmaybe</p>



<a name="192425097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192425097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192425097">(Mar 31 2020 at 17:49)</a>:</h4>
<p>it would certainly be more tempting than otherwise :P</p>



<a name="192435270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192435270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Phil H <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192435270">(Mar 31 2020 at 19:07)</a>:</h4>
<p>this is the subrepo command we would be using right? <a href="https://github.com/ingydotnet/git-subrepo" title="https://github.com/ingydotnet/git-subrepo">https://github.com/ingydotnet/git-subrepo</a></p>



<a name="192436900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192436900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> flip1995 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192436900">(Mar 31 2020 at 19:19)</a>:</h4>
<blockquote>
<p>i think we should start by gating on it building (it's pretty meaningless if we're not doing that since people will just ignore it if CI isn't telling them not to), and then perhaps try gating on tests as well to see what happens</p>
</blockquote>
<p>IMO we should at least also gate on the Clippy UI-tests from the get go. If we don't do this and there's a regression from a in tree rustup, we would have to go through all the PRs that fixed something in Clippy to figure out, what caused this regression. This can be really hard, since finding what causes some test regressions is sometimes already hard if you know what rust PR broke the test.</p>
<p>I think we should start by gating on build and ui-test for the Clippy repo. Maybe add dogfood later (and hope that it doesn't lead to <code>#[allow(clippy::_)]</code> from every Clippy in tree fix). Integration tests, fmt, and remark can only be run in the Clippy repo, since they are rarely affected by a rustup.</p>



<a name="192465268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192465268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192465268">(Mar 31 2020 at 23:15)</a>:</h4>
<p>Hmm, another thing; right now, I can simply do <code>x.py check</code> and when that succeeds, I assume that my changes build.<br>
Once we gate on clippy, will it <em>always</em> require a 2 stage build (which takes can take ~50 times longer than <code>./x.py check</code>) to see if clippy still works? <br>
Or is it possible to have some kind of shortcut?</p>



<a name="192465644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192465644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192465644">(Mar 31 2020 at 23:20)</a>:</h4>
<p>we'd need to make <code>./x.py check</code> also check clippy</p>



<a name="192465652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192465652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192465652">(Mar 31 2020 at 23:21)</a>:</h4>
<p>like it does check rustdoc</p>



<a name="192466087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192466087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192466087">(Mar 31 2020 at 23:26)</a>:</h4>
<p>then we need at least a stage 1 for that I think</p>



<a name="192466109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192466109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192466109">(Mar 31 2020 at 23:26)</a>:</h4>
<p>since you can't build nightly clippy with beta</p>



<a name="192466410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192466410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192466410">(Mar 31 2020 at 23:30)</a>:</h4>
<p>what's significant difference between rustdoc and clippy here?</p>



<a name="192466792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192466792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192466792">(Mar 31 2020 at 23:35)</a>:</h4>
<p>you can <code>cargo +beta check</code> rustdoc but not clippy , at least I <em>think</em> so</p>



<a name="192471538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192471538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192471538">(Apr 01 2020 at 00:43)</a>:</h4>
<p><span class="user-mention" data-user-id="217864">@matthiaskrgr</span> heh, no</p>



<a name="192471551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192471551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192471551">(Apr 01 2020 at 00:43)</a>:</h4>
<p><code>rustdoc</code> is 100% unstable rustc internals</p>



<a name="192471606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192471606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192471606">(Apr 01 2020 at 00:44)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> is right about this, it's just a bit of missing support</p>



<a name="192471652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192471652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192471652">(Apr 01 2020 at 00:45)</a>:</h4>
<p>all <code>rustdoc</code>, <code>clippy</code> or <code>miri</code> need, in <code>cargo check</code> them, is the <code>cargo check</code>'d <code>librustc_*</code> libs</p>



<a name="192471664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192471664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192471664">(Apr 01 2020 at 00:45)</a>:</h4>
<p>so <code>./x.py check</code> could totally work</p>



<a name="192471716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192471716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192471716">(Apr 01 2020 at 00:45)</a>:</h4>
<p>also <code>./x.py test --stage 1 src/test/rustdoc</code> has worked for ages, and it compiles rustc once and rustdoc once</p>



<a name="192471774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192471774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192471774">(Apr 01 2020 at 00:46)</a>:</h4>
<p>we wanted to setup something like this for miri but miri does a few weird things we'll have to take into account</p>



<a name="192472662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192472662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matthiaskrgr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192472662">(Apr 01 2020 at 01:00)</a>:</h4>
<p>oh great <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="192518006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518006">(Apr 01 2020 at 12:14)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> hang on... this <code>git subrepo</code> thing.... is it just an external tool that makes commits?</p>



<a name="192518021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518021">(Apr 01 2020 at 12:15)</a>:</h4>
<p>yes</p>



<a name="192518027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518027">(Apr 01 2020 at 12:15)</a>:</h4>
<p>...</p>



<a name="192518050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518050">(Apr 01 2020 at 12:15)</a>:</h4>
<p>okay I was expecting something internal to <code>git</code>, where it tracks trees separately like a submodule</p>



<a name="192518080"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518080" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518080">(Apr 01 2020 at 12:15)</a>:</h4>
<p>git subtree looks far more appropriate</p>



<a name="192518086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518086">(Apr 01 2020 at 12:15)</a>:</h4>
<p>no, this is just fancy tooling around monorepos with synchronization helpers</p>



<a name="192518107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518107">(Apr 01 2020 at 12:15)</a>:</h4>
<p>but we don't want a monorepo, git-wise, do we?</p>



<a name="192518197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518197">(Apr 01 2020 at 12:16)</a>:</h4>
<p>wouldn't <code>git subtree</code> let you have the exact commit history that is now in submodules?</p>



<a name="192518207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518207">(Apr 01 2020 at 12:16)</a>:</h4>
<p>or am I missing something?</p>



<a name="192518224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518224">(Apr 01 2020 at 12:17)</a>:</h4>
<p>I just read in random places that ppl were unhappy with <code>git subtree</code></p>



<a name="192518235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518235">(Apr 01 2020 at 12:17)</a>:</h4>
<p>so I looked for alternatives</p>



<a name="192518252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518252">(Apr 01 2020 at 12:17)</a>:</h4>
<p>I never actually used git subtree myself</p>



<a name="192518266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518266">(Apr 01 2020 at 12:17)</a>:</h4>
<p>okay but <code>git subrepo</code> isn't a real git integration, which is what I (and probably others) were led to believe</p>



<a name="192518389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518389">(Apr 01 2020 at 12:19)</a>:</h4>
<p>oh</p>



<a name="192518402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518402">(Apr 01 2020 at 12:19)</a>:</h4>
<p>I specifically stated you need to install a separate tool</p>



<a name="192518412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518412">(Apr 01 2020 at 12:19)</a>:</h4>
<p>and it's completely transparent otherwise</p>



<a name="192518426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518426">(Apr 01 2020 at 12:19)</a>:</h4>
<p>yes but it doesn't interact with git repos and their commits in a nested way</p>



<a name="192518430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518430">(Apr 01 2020 at 12:19)</a>:</h4>
<p>the name is sort of a lie</p>



<a name="192518503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518503">(Apr 01 2020 at 12:20)</a>:</h4>
<p>ok, <em>shrug</em></p>



<a name="192518523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518523">(Apr 01 2020 at 12:20)</a>:</h4>
<p>I'll leave a comment on the issue</p>



<a name="192518524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518524">(Apr 01 2020 at 12:20)</a>:</h4>
<p>someone else do sth else then :D I don't know git subtree</p>



<a name="192518634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518634">(Apr 01 2020 at 12:21)</a>:</h4>
<p>I guess I can try to nuke the clippy submodule and add it as a subtree, like you did</p>



<a name="192518652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518652">(Apr 01 2020 at 12:21)</a>:</h4>
<p>and see what happens</p>



<a name="192518793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518793">(Apr 01 2020 at 12:23)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> what's important here is that we can make changes directly via <code>rust-lang/rust</code>to clippy without having to make a separate PR in clippy</p>



<a name="192518828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518828">(Apr 01 2020 at 12:23)</a>:</h4>
<p>so make sure subtree or whatever the alternative is handles that</p>



<a name="192518955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518955">(Apr 01 2020 at 12:24)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> I mean, yes, that's the bare absolute minimum, but also we should avoid degrading the quality of git history</p>



<a name="192518969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518969">(Apr 01 2020 at 12:24)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> oh, <code>git subtree</code> does the thing you did for merging miri into rustc lmao</p>



<a name="192518982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192518982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192518982">(Apr 01 2020 at 12:25)</a>:</h4>
<p>except it rewrites the whole history</p>



<a name="192519008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519008">(Apr 01 2020 at 12:25)</a>:</h4>
<p>does <code>git subrepo</code> keep the commits or just make bland sync commits?</p>



<a name="192519015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519015">(Apr 01 2020 at 12:25)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span>  I have no problem with additional constraints you have <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="192519020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519020">(Apr 01 2020 at 12:25)</a>:</h4>
<p>pushes keep the commits</p>



<a name="192519042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519042">(Apr 01 2020 at 12:25)</a>:</h4>
<p>your clippy import PR definitely is missing the clippy history :P</p>



<a name="192519045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519045">(Apr 01 2020 at 12:25)</a>:</h4>
<p>so the remote repo sees everything</p>



<a name="192519064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519064">(Apr 01 2020 at 12:26)</a>:</h4>
<p>okay but also in the opposite direction?</p>



<a name="192519085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519085">(Apr 01 2020 at 12:26)</a>:</h4>
<p>yea, but does rustc care about clippy commits?</p>



<a name="192519128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519128">(Apr 01 2020 at 12:26)</a>:</h4>
<p>I don't want <code>git blame</code> to break</p>



<a name="192519154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519154">(Apr 01 2020 at 12:26)</a>:</h4>
<p>subrepo discussion: <a href="https://github.com/ingydotnet/git-subrepo/issues/246" title="https://github.com/ingydotnet/git-subrepo/issues/246">https://github.com/ingydotnet/git-subrepo/issues/246</a></p>



<a name="192519196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519196">(Apr 01 2020 at 12:26)</a>:</h4>
<p><code>git subtree pull</code> seems to create one commit per remote commit unless you use <code>--squash</code></p>



<a name="192519234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519234">(Apr 01 2020 at 12:27)</a>:</h4>
<p>yea, unsupported right now in git subrepo</p>



<a name="192519250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519250">(Apr 01 2020 at 12:27)</a>:</h4>
<p>so why would we use subrepo over subtree?</p>



<a name="192519311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519311">(Apr 01 2020 at 12:28)</a>:</h4>
<p>idk</p>



<a name="192519325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519325">(Apr 01 2020 at 12:28)</a>:</h4>
<p>anyway it turns out there's no tool that does the submodule thing but tracked transitively instead of opaquely</p>



<a name="192519347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519347">(Apr 01 2020 at 12:28)</a>:</h4>
<p>heck opaque tracking would be fine if they could be pushed alongside eachother automatically ugh</p>



<a name="192519412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519412">(Apr 01 2020 at 12:29)</a>:</h4>
<p>so the choices are:</p>
<ul>
<li>keep history, but lose exact commit hashes</li>
<li>don't keep history at all, full-on monorepo</li>
</ul>



<a name="192519454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519454">(Apr 01 2020 at 12:29)</a>:</h4>
<p>well, history could be kept with git subrepo, it just doesn't support it yet</p>



<a name="192519465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519465">(Apr 01 2020 at 12:30)</a>:</h4>
<p>it's not a technical limitation</p>



<a name="192519522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519522">(Apr 01 2020 at 12:30)</a>:</h4>
<p>I am suspicious of it existing when <code>git subtree</code> already does, is there an explainer somewhere?</p>



<a name="192519531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519531">(Apr 01 2020 at 12:30)</a>:</h4>
<p>is it <em>older</em> or <em>newer</em> than <code>git subtree</code>?</p>



<a name="192519751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519751">(Apr 01 2020 at 12:32)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> btw, I think it would be good to first make a PR with the contributing notes before doing the move itself</p>



<a name="192519770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519770">(Apr 01 2020 at 12:32)</a>:</h4>
<p>easier to review tweaks to the contributing notes that way</p>



<a name="192519982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519982">(Apr 01 2020 at 12:35)</a>:</h4>
<p>subrepo is newer than subtree</p>



<a name="192519997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192519997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192519997">(Apr 01 2020 at 12:35)</a>:</h4>
<p>its docs explicitly mention subtree having problems that it solves</p>



<a name="192520108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192520108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192520108">(Apr 01 2020 at 12:36)</a>:</h4>
<p>which are?</p>



<a name="192520212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192520212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192520212">(Apr 01 2020 at 12:37)</a>:</h4>
<blockquote>
<p>Fixes known rebase failures with git-subtree.</p>
</blockquote>



<a name="192520241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192520241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192520241">(Apr 01 2020 at 12:37)</a>:</h4>
<p><a href="https://github.com/ingydotnet/git-subrepo#benefits" title="https://github.com/ingydotnet/git-subrepo#benefits">https://github.com/ingydotnet/git-subrepo#benefits</a></p>



<a name="192520502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192520502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192520502">(Apr 01 2020 at 12:40)</a>:</h4>
<p>idk, reading <a href="https://stackoverflow.com/questions/32407634/when-to-use-git-subtree" title="https://stackoverflow.com/questions/32407634/when-to-use-git-subtree">https://stackoverflow.com/questions/32407634/when-to-use-git-subtree</a> sounds to me like subtree has the same benefits</p>



<a name="192521340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192521340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192521340">(Apr 01 2020 at 12:47)</a>:</h4>
<p>note that subtree also does the "is basically monorepo" strategy</p>



<a name="192521419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192521419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192521419">(Apr 01 2020 at 12:48)</a>:</h4>
<p>I honestly don't care whether we use git subtree or git subrepo, although the former being part of git makes it more convenient</p>



<a name="192522728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522728">(Apr 01 2020 at 12:58)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> a monorepo with lost history is more of a terrible monorepo to me than one where we at least sync history both ways</p>



<a name="192522929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522929">(Apr 01 2020 at 13:00)</a>:</h4>
<p>subrepo mentions "Your git history is kept squeaky clean."</p>



<a name="192522936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522936">(Apr 01 2020 at 13:00)</a>:</h4>
<p>that's... not what I want</p>



<a name="192522940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522940">(Apr 01 2020 at 13:00)</a>:</h4>
<p>you don't really lose history, with submodule you still need to go to the right commit on the other repo, git subrepo had these commit ids also stored in a file, just like git submodule</p>



<a name="192522961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522961">(Apr 01 2020 at 13:00)</a>:</h4>
<blockquote>
<p>"Upstream history (clone/pull) is condensed into a single commit."</p>
</blockquote>



<a name="192522980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522980">(Apr 01 2020 at 13:00)</a>:</h4>
<p>I'm convinced</p>



<a name="192522991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522991">(Apr 01 2020 at 13:00)</a>:</h4>
<p>ignore git subrepo please</p>



<a name="192522996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192522996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192522996">(Apr 01 2020 at 13:00)</a>:</h4>
<p>lol</p>



<a name="192523030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523030">(Apr 01 2020 at 13:01)</a>:</h4>
<p>I am trying to figure out the best option, and not be kneejerky, FWIW</p>



<a name="192523082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523082">(Apr 01 2020 at 13:01)</a>:</h4>
<p>I just want any option that is monorepo style for users</p>



<a name="192523127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523127">(Apr 01 2020 at 13:01)</a>:</h4>
<p>and I get that history is nice, and git subtree has nice (even if fake) history</p>



<a name="192523133"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523133" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523133">(Apr 01 2020 at 13:01)</a>:</h4>
<p>so let's do that</p>



<a name="192523153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523153">(Apr 01 2020 at 13:02)</a>:</h4>
<p>these are the only three options I found (beyond full monorepo)</p>



<a name="192523207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523207">(Apr 01 2020 at 13:02)</a>:</h4>
<p>3?</p>



<a name="192523237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523237">(Apr 01 2020 at 13:02)</a>:</h4>
<p>I just never thought to check git subtree because git subrepo docs said it's not great</p>



<a name="192523248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523248">(Apr 01 2020 at 13:02)</a>:</h4>
<p>submodule, subrepo, subtree, monorepo</p>



<a name="192523270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523270">(Apr 01 2020 at 13:02)</a>:</h4>
<p>aaah</p>



<a name="192523305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523305">(Apr 01 2020 at 13:02)</a>:</h4>
<p>and submodule and monorepo are not what we want</p>



<a name="192523318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523318">(Apr 01 2020 at 13:03)</a>:</h4>
<p>I was gonna take subtree out for a spin, are you still on it then?</p>



<a name="192523338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523338">(Apr 01 2020 at 13:03)</a>:</h4>
<p>already done, you have a PR assigned to you</p>



<a name="192523344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523344">(Apr 01 2020 at 13:03)</a>:</h4>
<p>wait what</p>



<a name="192523489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523489">(Apr 01 2020 at 13:04)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> did you try the <code>./x.py check</code> thing?</p>



<a name="192523510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523510">(Apr 01 2020 at 13:04)</a>:</h4>
<p>no</p>



<a name="192523522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523522">(Apr 01 2020 at 13:04)</a>:</h4>
<p>let's, please</p>



<a name="192523548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523548">(Apr 01 2020 at 13:04)</a>:</h4>
<p>before r+ sure</p>



<a name="192523565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523565">(Apr 01 2020 at 13:04)</a>:</h4>
<p>sure <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="192523632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523632">(Apr 01 2020 at 13:05)</a>:</h4>
<p>oh, GH is nice enough to show your own Rust commits separately :D</p>



<a name="192523652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523652">(Apr 01 2020 at 13:05)</a>:</h4>
<p>(We should make x.py check changes a separate PR, there's no need to connect the two beyond a toggle that enables it by default when we merge the two)</p>



<a name="192523697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523697">(Apr 01 2020 at 13:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span>  okay, but let's land that separate PR first then</p>



<a name="192523715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523715">(Apr 01 2020 at 13:05)</a>:</h4>
<p>...obviously, yes.</p>



<a name="192523769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523769">(Apr 01 2020 at 13:06)</a>:</h4>
<p>heh wasn't obvious to me :P</p>



<a name="192523801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523801">(Apr 01 2020 at 13:06)</a>:</h4>
<p>huh, are commit signatures preserved?</p>



<a name="192523812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523812">(Apr 01 2020 at 13:06)</a>:</h4>
<p>that's a benefit I haven't considered</p>



<a name="192523953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523953">(Apr 01 2020 at 13:07)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> you won't believe this</p>



<a name="192523984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192523984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192523984">(Apr 01 2020 at 13:07)</a>:</h4>
<p><code>git subtree</code> preserves commit hashes</p>



<a name="192524012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524012">(Apr 01 2020 at 13:07)</a>:</h4>
<p>my face right now -&gt; <span aria-label="open mouth" class="emoji emoji-1f62e" role="img" title="open mouth">:open_mouth:</span></p>



<a name="192524083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524083">(Apr 01 2020 at 13:08)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust-clippy/commits/master" title="https://github.com/rust-lang/rust-clippy/commits/master">https://github.com/rust-lang/rust-clippy/commits/master</a></p>



<a name="192524103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524103">(Apr 01 2020 at 13:08)</a>:</h4>
<p>not sure that will be permanent</p>



<a name="192524134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524134">(Apr 01 2020 at 13:08)</a>:</h4>
<p>unless it keeps merging..hmmm</p>



<a name="192524140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524140">(Apr 01 2020 at 13:08)</a>:</h4>
<p>doesn't matter, most of the history is in the past</p>



<a name="192524165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524165">(Apr 01 2020 at 13:08)</a>:</h4>
<p>won't be soon</p>



<a name="192524185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524185">(Apr 01 2020 at 13:08)</a>:</h4>
<p>(if we do this)</p>



<a name="192524320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192524320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192524320">(Apr 01 2020 at 13:09)</a>:</h4>
<p>still, I had already accepted losing <em>all</em> commit hash correspondence</p>



<a name="192525027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525027">(Apr 01 2020 at 13:14)</a>:</h4>
<p>okay so I think the explanation is that <code>git subtree</code> (ab)uses merge commits to hide adding the prefix</p>



<a name="192525062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525062">(Apr 01 2020 at 13:15)</a>:</h4>
<p>meaning every <code>git subtree pull</code> should keep matching commits from the separate repo</p>



<a name="192525097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525097">(Apr 01 2020 at 13:15)</a>:</h4>
<p>and probably every <code>git subtree push</code> too (but in that direction there might be pollution, and at least that part I don't mind being rewritten)</p>



<a name="192525368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525368">(Apr 01 2020 at 13:17)</a>:</h4>
<p>we also need to be careful rebasing (as in never doing so) the merge commits created by <code>git subtree</code></p>



<a name="192525435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525435">(Apr 01 2020 at 13:17)</a>:</h4>
<p>but that's only a concern for whoever creates the subtree-operation PRs, right?</p>



<a name="192525451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525451">(Apr 01 2020 at 13:17)</a>:</h4>
<p>but that's only when sync-ing, right? I wonder if we should automate that</p>



<a name="192525453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525453">(Apr 01 2020 at 13:17)</a>:</h4>
<p>yes</p>



<a name="192525459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525459">(Apr 01 2020 at 13:17)</a>:</h4>
<p>kind of like creating a rollup PR</p>



<a name="192525475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525475">(Apr 01 2020 at 13:17)</a>:</h4>
<p>you wouldn't rebase a rollup PR either</p>



<a name="192525602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525602">(Apr 01 2020 at 13:18)</a>:</h4>
<p>we can automate later. This is still strictly an improvement over submodule</p>



<a name="192525630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525630">(Apr 01 2020 at 13:18)</a>:</h4>
<p>right</p>



<a name="192525662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525662">(Apr 01 2020 at 13:18)</a>:</h4>
<p>there are already issues where people accidentally include submodule reverts in their rebases</p>



<a name="192525691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525691">(Apr 01 2020 at 13:19)</a>:</h4>
<p>I think that won't be possible here</p>



<a name="192525694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525694">(Apr 01 2020 at 13:19)</a>:</h4>
<p>now at least rebasing non-subtree changes shouldn't ever go wrong</p>



<a name="192525799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525799">(Apr 01 2020 at 13:20)</a>:</h4>
<p>right, that's what I mean, we already had to be careful and I think now most people should have strictly less problems</p>



<a name="192525855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525855">(Apr 01 2020 at 13:20)</a>:</h4>
<p>Will this give us (part of) the miri history inside rust-lang/rust twice? It already contains it once when the old const eval was replaced by the miri core.</p>



<a name="192525878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525878">(Apr 01 2020 at 13:20)</a>:</h4>
<p>hilarious</p>



<a name="192525889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525889">(Apr 01 2020 at 13:20)</a>:</h4>
<p>my understanding is that subtree essentially means that no one has to know that clippy is a separate repo unless they want to</p>



<a name="192525890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525890">(Apr 01 2020 at 13:20)</a>:</h4>
<p>they're the same commit hashes though</p>



<a name="192525903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525903">(Apr 01 2020 at 13:20)</a>:</h4>
<p>I don't think so... I did it without changing commit hashes back then</p>



<a name="192525935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525935">(Apr 01 2020 at 13:20)</a>:</h4>
<p>so it will look like rejoining a long-<del>lost</del>forgotten git history</p>



<a name="192525956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525956">(Apr 01 2020 at 13:21)</a>:</h4>
<p>there'll just be a long part where we never saw any interaction between the mir branch and the rustc branch</p>



<a name="192525985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192525985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192525985">(Apr 01 2020 at 13:21)</a>:</h4>
<p>but that's trivial to check when we do the merge ;)</p>



<a name="192526013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192526013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192526013">(Apr 01 2020 at 13:21)</a>:</h4>
<p>(unless I kill github UI again, as I did for a bit with clippy earlier)</p>



<a name="192526507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192526507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192526507">(Apr 01 2020 at 13:25)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> do you want to review <a href="https://github.com/rust-lang/rust/pull/70655/commits/f8041069e27b9ab35c937255880c988ba0f2c362" title="https://github.com/rust-lang/rust/pull/70655/commits/f8041069e27b9ab35c937255880c988ba0f2c362">https://github.com/rust-lang/rust/pull/70655/commits/f8041069e27b9ab35c937255880c988ba0f2c362</a></p>



<a name="192526564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192526564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192526564">(Apr 01 2020 at 13:25)</a>:</h4>
<p>and <a href="https://github.com/rust-lang/rust/pull/70655/commits/6a05fee1933fe61e8615739a45eac7e2033ed4c9" title="https://github.com/rust-lang/rust/pull/70655/commits/6a05fee1933fe61e8615739a45eac7e2033ed4c9">https://github.com/rust-lang/rust/pull/70655/commits/6a05fee1933fe61e8615739a45eac7e2033ed4c9</a> I guess</p>



<a name="192526688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192526688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192526688">(Apr 01 2020 at 13:26)</a>:</h4>
<p>They seem fine though that's no guarantee it'll work</p>



<a name="192526781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192526781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192526781">(Apr 01 2020 at 13:27)</a>:</h4>
<p>oh the second commit undos the removal of the toolstate in the first</p>



<a name="192526976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192526976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192526976">(Apr 01 2020 at 13:28)</a>:</h4>
<p>okay I think I see what's happening in rustbuild, looks fine to me too</p>



<a name="192528034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192528034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192528034">(Apr 01 2020 at 13:36)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> are you working on <code>./x.py check</code> support/testing btw?</p>



<a name="192531207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531207">(Apr 01 2020 at 13:56)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> <span class="user-mention" data-user-id="116122">@simulacrum</span> oh, <span class="user-mention" data-user-id="209698">@edef</span> explained it to me on IRC: <code>git subtree</code> uses <code>git merge -Xsubtree</code> internally, so it is technically a <code>git</code> feature, not just abusing the merge commit</p>



<a name="192531250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531250">(Apr 01 2020 at 13:56)</a>:</h4>
<p>yes working on check</p>



<a name="192531315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531315">(Apr 01 2020 at 13:57)</a>:</h4>
<p>and that's the only thing left before we throw this in, no FCP no MCP :P?</p>



<a name="192531397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531397">(Apr 01 2020 at 13:57)</a>:</h4>
<p>I would like to see the subrepo vs. subtree summary that Ralf asked for on the issue</p>



<a name="192531502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531502">(Apr 01 2020 at 13:58)</a>:</h4>
<p>and IMO we probably want to at least give it some time for responses, at the very least some mention at meeting tomorrow</p>



<a name="192531510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531510">(Apr 01 2020 at 13:58)</a>:</h4>
<p>I would FCP it personally</p>



<a name="192531543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531543">(Apr 01 2020 at 13:58)</a>:</h4>
<p>or at least "FCP without the final comment period"</p>



<a name="192531596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531596">(Apr 01 2020 at 13:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> meeting sound good for final decision ^^?</p>



<a name="192531909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531909">(Apr 01 2020 at 14:00)</a>:</h4>
<p>Heh, glad to see the question raised.</p>



<a name="192531930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531930">(Apr 01 2020 at 14:01)</a>:</h4>
<p>FCP for infra or compiler team?</p>



<a name="192531962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192531962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192531962">(Apr 01 2020 at 14:01)</a>:</h4>
<p>I felt like there should be some "decision point" here as well.</p>



<a name="192532251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532251">(Apr 01 2020 at 14:03)</a>:</h4>
<p>definitely compiler, infra has no stake in this IMO.</p>



<a name="192532563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532563">(Apr 01 2020 at 14:04)</a>:</h4>
<p>I was going to say, I think it seems more compiler, and maybe dev-tools, but I am wondering a bit just what we're FCP'ing -- I think it is something like</p>
<ul>
<li>use of git subtree</li>
<li>policy around updating tools -- we're going to keep them building, but maybe not testing</li>
<li>some kind of plan for sync'ing?</li>
</ul>



<a name="192532574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532574">(Apr 01 2020 at 14:04)</a>:</h4>
<p>As long as all the infra works out for rollups and whatnot then T-release should have no issues too</p>



<a name="192532603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532603">(Apr 01 2020 at 14:04)</a>:</h4>
<p>At minimum the dev-tools folks should be <em>pinged</em> :)</p>



<a name="192532628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532628">(Apr 01 2020 at 14:04)</a>:</h4>
<p>since it seems like this effects their workflows?</p>



<a name="192532679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532679">(Apr 01 2020 at 14:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> well Oliver and Manish, et. al are involved</p>



<a name="192532697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532697">(Apr 01 2020 at 14:05)</a>:</h4>
<p>so that's the Clippy folks</p>



<a name="192532814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532814">(Apr 01 2020 at 14:06)</a>:</h4>
<p>we want to test this with clippy, and clippy ppl know about it</p>



<a name="192532888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532888">(Apr 01 2020 at 14:06)</a>:</h4>
<p>if the test is successfull, we try to convince other dev tools that this is cool and they should do it, too</p>



<a name="192532919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532919">(Apr 01 2020 at 14:06)</a>:</h4>
<p>can't wait to stop having nightlies missing tools</p>



<a name="192532927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532927">(Apr 01 2020 at 14:06)</a>:</h4>
<p>I want some time though for this to sink in before we move on to <del>Clippy</del> Miri</p>



<a name="192532959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532959">(Apr 01 2020 at 14:06)</a>:</h4>
<p>to make sure the bors queue and stuff is running smoothly</p>



<a name="192532988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192532988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192532988">(Apr 01 2020 at 14:07)</a>:</h4>
<p>the status quo makes it really hard to <code>rustup update</code> without setting a bunch of nightly dates in various places</p>



<a name="192533270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533270">(Apr 01 2020 at 14:09)</a>:</h4>
<p>ok, seems good, I say we FCP w/ t-compiler -- as much to make people aware as anything -- and we can bring other tools in as we go by pinging the folks involved in each tool</p>



<a name="192533314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533314">(Apr 01 2020 at 14:09)</a>:</h4>
<p>we want to do it on the issue, right?</p>



<a name="192533335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533335">(Apr 01 2020 at 14:09)</a>:</h4>
<p>because the PR has 8000 commits on it :P</p>



<a name="192533386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533386">(Apr 01 2020 at 14:09)</a>:</h4>
<p>there's a PR that updates the docs</p>



<a name="192533397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533397">(Apr 01 2020 at 14:10)</a>:</h4>
<p>that is relatively short</p>



<a name="192533440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533440">(Apr 01 2020 at 14:10)</a>:</h4>
<p>ah good, right</p>



<a name="192533455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533455">(Apr 01 2020 at 14:10)</a>:</h4>
<p>and I think hopefully clarifies what's happening</p>



<a name="192533488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533488">(Apr 01 2020 at 14:10)</a>:</h4>
<p>I think the docs PR might want some tweaks though</p>



<a name="192533499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533499">(Apr 01 2020 at 14:10)</a>:</h4>
<p>for the text and stuff</p>



<a name="192533554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533554">(Apr 01 2020 at 14:10)</a>:</h4>
<p>anyway I don't care that much where we fcp but the docs PR or issue seems fine, we should certainly point at the docs either way</p>



<a name="192533575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/toolstate%20breakage%20%2370655/near/192533575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/toolstate.20breakage.20.2370655.html#192533575">(Apr 01 2020 at 14:10)</a>:</h4>
<p>and if they don't clarify what's going on, seems like a bug in the docs :)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>